package com.chenl.provider.DEMOS.写法优化;

import com.chenl.provider.controller.Stu;
import org.apache.commons.lang3.StringUtils;

import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class test1 {
    public void  method(){
        Stu stu=new Stu();
        stu.setParentId("123");
        stu.setSysLevCd("321");
        Set<String> set =new HashSet<>();
        if (StringUtils.isNotBlank(stu.getParentId())){
            set.add(stu.getParentId());
        }
        if (StringUtils.isNotBlank(stu.getSysLevCd())){
            set.add(stu.getSysLevCd());
        }
        if (StringUtils.isNotBlank(stu.getName())){
            set.add(stu.getName());
        }
        // 可以优化成 -> ->
        Set<String> collect = Stream.of(stu.getParentId(), stu.getSysLevCd(), stu.getName()).filter(StringUtils::isNotBlank).collect(Collectors.toSet());
    }

    public void  method2(){
        Map<String, List<Stu>> map=new HashMap<>();
        Map<String, String> map1 = map.get("1").stream().collect(Collectors.toMap(e -> String.valueOf(e.getName()), e -> e.getSysLevCd()));
        //可以优化成 -> 这样子map.get("1").stream就不会爆空指针了,直接返回一个空Map
        Map<String, String> map2 = Optional.ofNullable(map.get("1")).map(e -> e.stream().collect(Collectors.toMap(Stu::getId, Stu::getName))).orElse(new HashMap<>());
    }
}
